home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_01_02
/
clune.exe
/
DOS_FUNC.TXT
< prev
next >
Wrap
Text File
|
1989-11-27
|
5KB
|
101 lines
DOCUMENTATION OF DOS_FUNC.C
Documentation dated, 6/89, updated 11/89.
Program and documentation Copyright (c) 1989, E.R.I. All rights reserved.
INTRODUCTION
DOS_FUNC.C is my source file to support PC-DOS software interrupts or
functions that were built up from PC-DOS interrupts.
DOS_FUNC.C EXTERNALLY-VISIBLE FUNCTIONS
The externally-visible functions of DOS_FUNC.C are declared in DOS_FUNC.H.
You may #include that file to declare these functions.
FUNCTION: count_files()
TYPE: int
ARGUMENTS: one character string
count_files(filespec) counts the number of files that match the filespec
template, which follows the standard DOS conventions. For example,
i=count_files("*.*"); would return the total number of files in the default
directory. It is useful for dynamically allocating string pointers for the
get_dir() function below (q.v.). See my WDIR.C for an example of this kind
of program usage.
FUNCTION: del_fhandle()
TYPE: int
ARGUMENTS: one character string
del_fhandle(filespec) deletes all files that conform to the filespec
template, which follows standard DOS conventions. Thus,
del_fhandle("A:\FOO\*.C"); would delete all files with the extension ".C" from
the A: drive subdirectory FOO. The function returns a flag value 1 if a file
could not be deleted, 0 if file(s) were deleted or no matching files were found.
FUNCTION: disk_space()
TYPE: long int
ARGUMENTS: one int
disk_space(drive) returns the number of bytes available on the disk
specified by drive. drive is a flag variable with the following significance: 0
means the default drive, 1 means drive A:, 2 means B:, etc. This function was
written to deal with a very unpleasant bug in the ITEX library function,
saveim(). That function will tell you that an image file was successfully
written, even if there was insufficient disk space to write the file. That is,
saveim() will only tell you whether an image file write was INITIATED
sucessfully, not whether it was completed properly. You should always verify
that there is sufficient space on a disk before writing an image. If you like,
you can use safe_save() for that purpose (see FILEMAIN.C for details).
FUNCTION: fget_time_date()
TYPE: void
ARGUMENTS: two character strings
fget_time_date(filespec,timedate); gets the time and date of creation
(or last change) of the filespec file, and writes it into the timedate
string. The format is: MM-DD-YY HH:MM.SS, where MM is month, DD is day,
YY is year, HH is hour, MM is minutes, and SS is seconds. The timedate
string length is <= 18 characters (only minutes and seconds are filled
out to two characters if they are less than 10). If the filespec file
does not exist, timedate returns all 0s. I use fget_time_date() to make
sure that the image file associated with a scotoma map has not changed.
That is, if a new file is created using the same file name, the time
and date will be different, so I will be able to detect the error and
not map a scotoma onto the wrong image.
FUNCTION: fname_unused()
TYPE: int
ARGUMENTS: one character string
fname_unused(filespec) determines whether a file already exists that uses
the name and path specified by filespec. This is useful for avoiding mistakenly
creating a file that has the same name as an existing file, which automatically
deletes the previous file under DOS. I use this function in all my file writes
(including safe_save() in FILEMAIN.C). fname_unused() returns 0 if the file
already exists, 1 otherwise.
FUNCTION: get_dir()
TYPE: int
ARGUMENTS: one character string, one pointer to an array of strings, and one
int.
i=get_dir(filespec, fnames, max_files) gets a directory of files that
conform to the FILESPEC template, and writes their names into the FNAMES array.
MAX_FILES is the size of the FNAMES array: this routine will not generate more
than MAX_FILES file names. This routine is used in the get_file() function of
menu.c. NOTE WELL: get_dir() malloc()s space for the FNAMES pointers, depending
on the actual length of the file names. IT DOES NOT free() that space after
usage. You must free() the space malloc()ed by get_dir() when you are through
using the FNAMES strings. WARNING: make sure to free() only the space that was
actually malloc()ed. That is, if you allow for 100 pointers and get_dir() only
uses 20, only free() FNAMES[0] to FNAMES[19]. get_dir() returns the number of
strings actually used: use that value to determine how many strings to free().